home *** CD-ROM | disk | FTP | other *** search
/ AOL File Library: 2,801 to 2,900 / aol-file-protocol-4400-2801-to-2900.zip / AOLDLs / C++ Files Library / SK (Sockects) 1.4.1 r2 / SK v1.4.1 r2.sit / SK 1.4.1 r2 / SK / TCP Headers / AddressXlation.h next >
Text File  |  1993-06-15  |  2KB  |  102 lines

  1. /* 
  2.     AddressXlation.h        
  3.     MacTCP name to address translation routines.
  4.  
  5.     Copyright Apple Computer, Inc. 1988-91
  6.     All rights reserved
  7.     
  8. */    
  9. #ifndef __ADDRESSXLATION__
  10. #define __ADDRESSXLATION__
  11.  
  12. #ifndef __MACTCPCOMMONTYPES__
  13. #include <MacTCPCommonTypes.h>
  14. #endif
  15.  
  16. #define NUM_ALT_ADDRS    4
  17.  
  18. typedef struct hostInfo {
  19.     long    rtnCode;
  20.     char cname[255];
  21.     unsigned long addr[NUM_ALT_ADDRS];
  22. };
  23.  
  24. typedef enum AddrClasses {
  25.     A = 1,
  26.     NS,
  27.     CNAME = 5,
  28.     HINFO = 13,
  29.     MX = 15,
  30.     lastClass = 32767
  31. } AddrClasses; 
  32.  
  33. typedef struct HInfoRec {
  34.     char cpuType[30];
  35.     char osType[30];
  36.     };
  37.  
  38. typedef struct MXRec {
  39.     unsigned short preference;
  40.     char exchange[255];
  41.     };
  42.     
  43. typedef struct returnRec {
  44.     int    rtnCode;
  45.     char cname[255];
  46.     union {
  47.         unsigned long addr[NUM_ALT_ADDRS];
  48.         struct HInfoRec hinfo;
  49.         struct MXRec mx;
  50.     } rdata;
  51. };
  52.  
  53. typedef struct cacheEntryRecord {
  54.     char *cname;
  55.     unsigned short type;
  56.     unsigned short cacheClass;
  57.     unsigned long ttl;
  58.     union {
  59.         char *name;
  60.         ip_addr addr;
  61.     } rdata;
  62. };
  63.  
  64. #ifdef __cplusplus
  65. extern "C" {
  66. #endif
  67.  
  68. #ifdef THINK_C
  69.  
  70.     typedef ProcPtr EnumResultProcPtr;
  71.     typedef ProcPtr ResultProcPtr;
  72.     typedef ProcPtr ResultProc2Ptr;
  73.     
  74. #else
  75.  
  76.     typedef pascal void (*EnumResultProcPtr)(struct cacheEntryRecord *cacheEntryRecordPtr, char *userDataPtr);
  77.     typedef pascal void (*ResultProcPtr)(struct hostInfo *hostInfoPtr, char *userDataPtr);
  78.     typedef pascal void (*ResultProc2Ptr)(struct returnRec *returnRecPtr, char *userDataPtr);
  79.  
  80. #endif
  81.  
  82. extern OSErr OpenResolver(char *fileName);
  83.  
  84. extern OSErr StrToAddr(char *hostName, struct hostInfo *hostInfoPtr, ResultProcPtr ResultProc, char *userDataPtr);
  85.  
  86. extern OSErr AddrToStr(unsigned long addr, char *addrStr);
  87.  
  88. extern OSErr EnumCache(EnumResultProcPtr enumResultProc, char *userDataPtr);
  89.  
  90. extern OSErr AddrToName(ip_addr addr, struct hostInfo *hostInfoPtr, ResultProcPtr ResultProc, char *userDataPtr);
  91.  
  92. extern OSErr HInfo(char *hostName, struct returnRec *returnRecPtr, ResultProc2Ptr resultProc, char *userDataPtr);
  93.  
  94. extern OSErr MXInfo(char *hostName, struct returnRec *returnRecPtr, ResultProc2Ptr resultProc, char *userDataPtr);
  95.  
  96. extern OSErr CloseResolver(void);
  97.  
  98. #ifdef __cplusplus
  99. }
  100. #endif
  101.  
  102. #endif